package com.app.miwawa.api.esm.service.bo;

import org.framework.common.api.service.bo.CommonBoAdapter;
import org.framework.common.ext.util.ClassUtil;
import org.framework.common.ext.util.SystemUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.app.miwawa.api.esm.entity.customer.Customer;
import com.app.miwawa.api.esm.service.dao.CustomerDao;

/**
 * 业务接口
 * <p>描述: 客户资料－业务接口</p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date 2016年1月23日 上午9:37:10
 * @version 1.0.2016
 */
@Service("customerBo")
public class CustomerBo extends CommonBoAdapter<Customer, String> {
	
	@Autowired
	private CustomerDao customerDao;

	/**
	 * @see org.framework.common.api.service.bo.CommonBoAdapter#insert(org.framework.common.api.entity.CommonEntityAware)
	 * @author chanlong(陈龙)
	 * @date 2016年1月23日 上午9:44:41
	 */
	@Override
	public Customer insert(Customer entity) throws Exception {
		return customerDao.save(entity);
	}
	
	/**
	 * @see org.framework.common.api.service.bo.CommonBoAdapter#update(org.framework.common.api.entity.CommonEntityAware)
	 * @author chanlong(陈龙)
	 * @date 2016年1月30日 下午11:39:23
	 */
	@Override
	public Customer update(Customer entity) throws Exception {
		Customer bean = customerDao.findOne(entity.getId());
		ClassUtil.copyProperties(entity, bean);
		return customerDao.saveAndFlush(bean);
	}
	
	/**
	 * 更新.
	 * @param ids
	 * @author chanlong(陈龙)
	 * @param entity 
	 * @throws Exception 
	 * @date 2016年2月8日 下午2:51:12
	 */
	public Integer update(final String[] ids, final Customer entity) throws Exception {
		return customerDao.update(entity.getUserid(), entity.getUsername(), ids);
	}
	
	/**
	 * 查询最大编码.
	 * @return
	 * @author chanlong(陈龙)
	 * @throws Exception 
	 * @date 2016年1月23日 下午5:36:44
	 */
	public String maxcode() throws Exception{
		String code = customerDao.maxcode();
		return SystemUtils.maxcode(Customer.CODE_PREFIX_CUSTOMER, code, Customer.DEFAULT_CODE_SERIAL);
	}
	
}
